/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package acceso_datos;

import datos.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Pablo
 */
public class EmergenciaDB {

    public boolean grabar(Emergencie em) throws SQLException {
        OperacionesBase db = new OperacionesBase();

        String query = "insert into emergencia values("
                + "" + em.getRegistroLlamada().getId()
                + "," + em.getTipoEmergencia().getId()
                + "," + em.getId()
                + ",'" + em.getZona()
                + "','" + em.getDescripcionGeneral()
                + "')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
    }
    
    
    public Emergencie buscar(String id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from emergencia where id_emergencia =" + id + "";
        ResultSet resultado = db.seleccion(query);
        Emergencie ei=null;
        if (resultado!=null) {
            resultado.next();
            
            ei=new Emergencie();
            
            ei.setId(resultado.getInt(3));
            ei.setZona(resultado.getString(4));
            ei.setDescripcionGeneral(resultado.getString(5));
            
            RegistroLlamadaDB rldb=new RegistroLlamadaDB();
            RegistroLlamada rl=rldb.buscar(resultado.getInt(1)+"");
            ei.setRegistroLlamada(rl);
                        
            int idTipoE=resultado.getInt(2);
            TipoEmergenciaDB tedb=new TipoEmergenciaDB();
            TipoEmergencia e=tedb.buscar(idTipoE+"");
            ei.setTipoEmergencia(e);
                    
        }
        db.cerrarConexion();
        return ei;
    }
    

    public HashMap<Integer, Emergencie> listar() throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "select * from emergencia";
        ResultSet resultado = db.seleccion(query);
        Emergencie ei = null;
        
        HashMap<Integer, Emergencie> todos = new HashMap<Integer, Emergencie>();
        while (resultado.next()) {
            ei=new Emergencie();
            
            ei.setId(resultado.getInt(3));
            ei.setZona(resultado.getString(4));
            ei.setDescripcionGeneral(resultado.getString(5));
            
            RegistroLlamadaDB rldb=new RegistroLlamadaDB();
            RegistroLlamada rl=rldb.buscar(resultado.getInt(1)+"");
            ei.setRegistroLlamada(rl);
                        
            int idTipoE=resultado.getInt(2);
            TipoEmergenciaDB tedb=new TipoEmergenciaDB();
            TipoEmergencia e=tedb.buscar(idTipoE+"");
            ei.setTipoEmergencia(e);
            
            todos.put(ei.getId(),ei);
        }
        db.cerrarConexion();
        return todos;
    }

    public int indiceFinal() {
        int max = -1;
        try {
            OperacionesBase db = new OperacionesBase();
            String query = "select max(id_emergencia) from emergencia ";
            ResultSet resultado = db.seleccion(query);
            
            while (resultado.next()) {

                max = resultado.getInt(1);
            }
            db.cerrarConexion();
            
        } catch (SQLException ex) {
            Logger.getLogger(EmergenciaDB.class.getName()).log(Level.SEVERE, null, ex);
        }
        return max;
    }
}
